<?php
require_once '../Generique/header_complet.php';
$bdd = ouvrirBase();

$notification = "";
// seul quelqu'un de loguer peut faire des op�rations sur son compte
if(isset($_SESSION['statut'], $_SESSION['nom']) && ($_SESSION['statut'] == "moderateur" || $_SESSION['statut'] == "administrateur") )
{
   
   
// affichage des informations
	echo '<h1>Histoires en Quarantaine</h1>';
	
	if(verifier_token(3600, 'Pages/histoiresQuarantaines.php', 'operations_management', 'tokenManagement'))
	{
		$token = generer_token('operations_management');
		if(isset($_POST['Accepter'])){
			if(isset ($_GET['idHistoire']) && is_numeric($_GET['idHistoire']) )
			{
				$autorisation = true;
				if($_SESSION['statut'] == "moderateur" ) // un mod�rateur ne peut appliquer ses r�sultats qu'� son univers
				{
					$req = $bdd->prepare('SELECT COUNT(*) FROM dil_histoires, dil_moderation
										WHERE moderateur = :pseudo AND univers = nomUnivers');
					$req->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_STR);
					$req->execute();
					$result = $req->fetch();
					if($result['COUNT(*)'] < 1 )
						$autorisation = false;
				}
				if($autorisation)
				{	// on v�rifie que l'histoire existe
				
					$compte = $bdd->prepare('SELECT COUNT(*) FROM dil_histoires WHERE id = :id');
					$compte->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
					$compte->execute();
					$existe = $compte->fetch();
					$existe = $existe['COUNT(*)'];
					
					if($existe > 0)
					{
				//On transfère l'histoire en attente vers les histoires consultables
						$req = $bdd->prepare('DELETE FROM dil_histoiresenquarantaine WHERE idHistoire = :id');
						$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
						$req->execute();
						$notification =	'L\'histoire est &agrave; pr&eacute;sent consultable par tout le monde';
						echo	'<br /><br /><a href = "management.php?name=demissionMode"> Retour &agrave; la page de management</a><br />';
						echo	'<br /><a href = "accueil.php"> Retour &agrave; l\'accueil</a><br />';
					}
				}
					else
						$notification = "Vous n'avez pas les droits requis pour acc&eacute;der &agrave cette page";
			}
			
		}
		else if (isset ($_POST['Supprimer'])){
			if(isset ($_GET['idHistoire']) && is_numeric($_GET['idHistoire']) )
			{
				$autorisation = true;
				if($_SESSION['statut'] == "moderateur" )		// un mod�rateur ne peut appliquer ses r�sultats qu'� son univers
				{
					$req = $bdd->prepare('SELECT COUNT(*) FROM dil_histoires, dil_moderation
										WHERE moderateur = :pseudo AND univers = nomUnivers');
					$req->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_INT);
					$req->execute();
					$result = $req->fetch();
					if($result['COUNT(*)'] < 1 )
						$autorisation = false;
				}
				if($autorisation)
				{	// on v�rifie que l'histoire existe
				
					$compte = $bdd->prepare('SELECT COUNT(*) FROM dil_histoires WHERE id = :id');
					$compte->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
					$compte->execute();
					$existe = $compte->fetch();
					$existe = $existe['COUNT(*)'];
					
					if($existe > 0)
					{
						//On transf�re l'histoire en attente vers les histoires en quarantaine
						$req = $bdd->prepare('DELETE FROM dil_histoiresenquarantaine WHERE idHistoire = :id ');
						$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
						$req->execute();
						$chapitre = $bdd->prepare('SELECT id FROM dil_chapitres WHERE idHistoire = :id  ');
						$chapitre->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
						$chapitre->execute();
						$req = $bdd->prepare('DELETE FROM dil_histoires WHERE id = :id ');
						$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
						$req->execute();
						$req = $bdd->prepare('DELETE FROM dil_cheickpoints WHERE idHistoire = :id ');
						$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
						$req->execute();
						$req = $bdd->prepare('DELETE FROM dil_chapitres WHERE idHistoire = :id ');
						$req->bindValue('id', $_GET['idHistoire'], PDO::PARAM_INT);
						$req->execute();
						
						while( $donnees = $chapitre->fetch()){
							$req1 = $bdd->prepare('DELETE FROM dil_reviews WHERE idChapitre = :id ');
							$req1->bindValue('id', $donnees['id'], PDO::PARAM_INT);
							$req1->execute();
							$req2 = $bdd->prepare('DELETE FROM dil_marquepages WHERE idChapitre = :id ');
							$req2->bindValue('id', $donnees['id'], PDO::PARAM_INT);
							$req2->execute();
						}
						$notification =	"L'histoire a été supprimée";
						echo	'<br /><br /><a href = "management.php?name=demissionMode"> Retour &agrave; la page de management</a><br />';
						echo	'<br /><a href = "accueil.php"> Retour &agrave; l\'accueil</a><br />';
					}
				}
				else
				$notification = "Vous n\'avez pas les droits requis pour acc&eacute;der &agrave cette page";

			}
		}
	}
	else{
		   
		$token = generer_token('operations_management');
		 //On cr�e un gestionnaire de pages pour afficher les informations souhait�es
	   $nbHistoiresParPages = 5;
	   if($_SESSION['statut']== "administrateur" )
	   {
			$base_requete = 'SELECT dil_histoires.titre AS Nom,
							dil_histoires.Description AS Description,
							dil_histoires.id AS id,
							dil_histoires.premierePage AS premierePage,
							dil_histoires.rating AS Rating,
							pseudoAuteur AS Auteur,
							niveau AS Niveau,
							nomUnivers
							FROM dil_histoires, dil_histoiresenquarantaine 
							WHERE id = idHistoire';

			$nbTitre = $bdd->prepare('SELECT COUNT(*) FROM dil_histoiresenquarantaine');
			$nbTitre->execute();
		}
		else
		{	$base_requete = 'SELECT dil_histoires.titre AS Nom,
							dil_histoires.Description AS Description,
							dil_histoires.id AS id,
							dil_histoires.premierePage AS premierePage,
							dil_histoires.rating AS Rating,
							pseudoAuteur AS Auteur,
							niveau AS Niveau,
							nomUnivers
							FROM dil_histoires, dil_histoiresenquarantaine, dil_moderation
							WHERE id = idHistoire AND moderateur = :pseudo AND nomUnivers = univers' ;		
			
			$nbTitre = $bdd->prepare('SELECT COUNT(*) FROM  dil_histoires, dil_histoiresenquarantaine, dil_moderation
									WHERE id = idHistoire AND moderateur = :pseudo AND nomUnivers = univers') ;	
			$nbTitre->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_INT);	
		}
		
		$nbTitre->execute();
		$titre = $nbTitre->fetch();
		$titre = $titre['COUNT(*)'];
		$i = 1;
		$menuPage;
	   
	   if (floor(($titre-1)/$nbHistoiresParPages )> 0){
			$menuPage = "Pages  ";
	   
		   $page=1;
		   if(isset($_GET['page']) && is_numeric($_GET['page'])){
				$page = $_GET['page'];
				if($page  < 1 || $page > ceil($titre/$nbHistoiresParPages))
					$page=1;
					
			}
		   while (floor(($titre-1) / $nbHistoiresParPages)>= $i)
			{
				if($page == $i)
					$menuPage .= "$i | ";
				else
					$menuPage .= '<a href = "histoiresQuarantaines.php?page='.$i.'">'.$i.'</a> | ';
				$i += 1;
			}
			if($page == $i)
				$menuPage .= "$i<br /><br />";
			else 
				$menuPage .= '<a href = "histoiresQuarantaines.php?page='.$i.'">'.$i.'</a><br /><br />';
			
			 //On affiche la barre de gestion des pages
			echo $menuPage;
			
			
			
			//On r�cup�re les informations que l'on souhaite afficher sur la page actuelle
			$req = $bdd->prepare($base_requete.' LIMIT :debut, :fin'); 
			
			if ($page == floor(($titre-1)/$nbHistoiresParPages) + 1){
				
				$req->bindValue('debut',(($page-1)*$nbHistoiresParPages), PDO::PARAM_INT);
				$req->bindValue('fin',($titre - ($page-1)*$nbHistoiresParPages), PDO::PARAM_INT);
			}
		   else{
				$req->bindValue('debut',(($page-1)*$nbHistoiresParPages), PDO::PARAM_INT);
				$req->bindValue('fin',$nbHistoiresParPages, PDO::PARAM_INT);
				
			}
		}
		else
		{
			$req = $bdd->prepare($base_requete);
		}
		
		if($_SESSION['statut'] == "moderateur" )
			$req->bindValue('pseudo', $_SESSION['nom'], PDO::PARAM_STR);
		$req->execute();
								   
		//On affiche les données selctionnées
		while( $donnees = $req->fetch() )
		{
			echo '<div class="requete">';
				echo '<table border="0px">';
					echo '<tr>';
						//case pour le rating
						echo '<td width="50px">
							<img src="../Images/Rating/rat_' . $donnees['Rating'] . '.png" />
						</td>';
						echo '<td width="550px">';
						echo '<p>';
							echo '<b>' . $donnees['Nom'] . '</b><br/>
							univers : '.$donnees['nomUnivers'].'<br />
							'.$donnees['Description'] . '<br/>
							<i>' . $donnees['Auteur'] . '</i><br/>';
						echo '</p>';
					echo '</td>';
					//boutons jouer et explorer
					echo '<td width="100px">';
                        echo '<a href="hierarchie.php?idHistoire=' . $donnees['id'] . '">
                            <input type="submit" class="max" value="Hi&eacute;rarchie" name="Hierarchie" />
                            </a>';
						echo'<form name="nouveauMode" method="post" action="histoiresQuarantaines.php?idHistoire=' . $donnees['id'] . '">';
						echo'<input type = "hidden" name = "demissionMode"/>';
							if($donnees['Niveau']>=2){
                                echo '<input type="submit" class="max" value="Accepter" name="Accepter" />';
                            }
                            echo '<input type="submit" class="max" value="Supprimer  " name="Supprimer" />';
							echo '<input type = "hidden" value="'.$token.'" name="tokenManagement" />
							';				
						echo'<input type = "hidden" name = "demissionMode"/></form>';
					echo '</td>';
				echo '</tr>';
			echo '</table>';
		echo '</div>';
		}
		
		//On affiche la barre de gestion des pages
		if (floor(($titre-1)/$nbHistoiresParPages )> 0)
		echo $menuPage;
	}
	

}
else
{
	$notification = "Veuillez vous identifier pour acc&eacute;der &agrave cette page";
}

//ZONE DE NOTIFICATION : pour l'affichage des différentes notifications
echo '
		<div id="notification">
			'. $notification .'
		</div>';
?>
<?php include("../Generique/pied.php"); ?>
